package com.workflow.sdk.infra.repository;

import com.baomidou.mybatisplus.extension.service.IService;
import com.workflow.sdk.infra.repository.model.WorkflowExecutePo;

import java.util.List;

/**
 * <p>
 * 流程执行表 服务类
 * </p>
 *
 * @author cyj
 * @since 2022-06-01
 */
public interface WorkflowExecuteRepository extends IService<WorkflowExecutePo> {

    /**
     * 获取流程数据
     * @param workflowExecuteId
     * @return
     */
    List<WorkflowExecutePo> getWorkflowExecute(Long workflowExecuteId);

    /**
     * 根据关联id获取执行流程id列表，如果relevance是空则返回空list
     * @param relevance
     * @return
     */
    List<WorkflowExecutePo> getExecuteIdByRe(String relevance);

    /**
     * 更新节点
     * @param nextNode 后续需要执行的节点  如果是WORKFLOW_END 则立即结束流程，如果是非WORKFLOW_END必须是正整数的节点标志
     * @see com.workflow.sdk.core.WorkflowExecutor
     * @param activeNode  当前活动节点
     * @param workflowExecutePos 所有节点
     * @param remark 备注
     */
    void changeWorkflowExecute(String nextNode, WorkflowExecutePo activeNode, List<WorkflowExecutePo> workflowExecutePos, String remark);
}
